package com.ys.otms.dao;

import com.ys.otms.dto.*;

import java.util.List;

public interface ITransportPlanDao {
    List<TransportPlanDto> queryTransportPlan(TransportPlanDto transportPlanDto);
    TransportPlanDto queryTransportPlanDetails(TransportPlanDto transportPlanDto);

    void insertTransportPlan(TransportPlanDto transportPlanDto);
    void updateTransportPlan(TransportPlanDto transportPlanDto);

    void insertTransportPlanClass(TransportClassDto transportClassDto);
    List<TransportClassDto> selectTransportPlanClass(TransportClassDto transportClassDto);
    void updateTransportPlanClass(TransportClassDto transportClassDto);
    void deleteTransportPlanClass(Integer planClassId);
    void deletePlanToTransportPlanClass(Integer planClassId);
    List<TransportClassDto> selectOPlanClass(TransportClassDto transportClassDto);
    void insertPlanToTransportPlanClass(TransportClassDto transportClassDto);

    void insertTransportPlanShip(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    void updateTransportPlanShip(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    void deleteTransportPlanShip(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    void deleteTransportPlanShipByPlanId(String planId);

    void insertSchedule(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    void deleteSchedule(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    void updateSchedule(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    TransportPlanShipScheduleDto querySchedule(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    void insertTransportPlanShipSchedule(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    void deleteTransportPlanShipSchedule(TransportPlanShipScheduleDto transportPlanShipScheduleDto);
    void deleteTransportPlanShipScheduleByPlanId(String planId);

    List<TransportPlanShipScheduleDto> queryPlanShip(String planId);
    List<TransportPlanShipScheduleDto> queryPlanShipShipSchedule(TransportPlanShipScheduleDto transportPlanShipScheduleDto);

    ShipXyDto queryPushInfo(String mmsi);
    List<String> queryPushMMSI();
    List<String> queryAllMMSI();
    List<TransportPlanDto> queryTransportPlanRepeat(TransportPlanDto transportPlanDto);

    List<ExportTransportPlanDto> queryExportTransportInfo(ExportTransportPlanDto exportTransportPlanDto);
    List<ExportTransportPlanDto> queryExportTransportInfo1(ExportTransportPlanDto exportTransportPlanDto);

    void deleteShipXyInfo(String date);
}
